package smartlifev30.com.sdk.api.gateway_app;

import android.support.annotation.NonNull;

import smartlifev30.com.sdk.api.CallBack;
import smartlifev30.com.sdk.bean.request.SetNetworkParamsRequest;

/**
 * 网关管理模块
 *
 * @author tys
 * @date 2018/8/15
 */

public interface IGatewayMgmt {


    /**
     *   设置网关SN号   ---广播协议
     * @param userName
     * @param token
     * @param sn
     * @param oldSn
     * @param newSn
     * @param callBack
     */
    void setGatewaySn(@NonNull String userName, @NonNull String token, @NonNull String sn,
                      @NonNull String oldSn, @NonNull String newSn, @NonNull CallBack<String> callBack);


    /**
     *
     * 设置网关IP等参数   ---广播协议
     * @param userName
     * @param token
     * @param sn
     * @param gateway
     * @param callBack
     */
    void setNetworkParams(@NonNull String userName, @NonNull String token, @NonNull String sn,
                          @NonNull SetNetworkParamsRequest.Gateway gateway, @NonNull CallBack<String> callBack);


    /**
     * 允许/禁止协调器进入组网模式(网关上硬件设备)
     * @param userName
     * @param token
     * @param sn
     * @param time 0—255秒, 255秒代表永久允许入网,0代表禁止入网
     * @param callBack
     */
    void zbNetOpen(@NonNull String userName, @NonNull String token, @NonNull String sn,
                   @NonNull Integer time, @NonNull CallBack<String> callBack);

    /**
     * 设置网关别名
     * @param userName
     * @param token
     * @param sn
     * @param alias
     * @param callBack
     */
    void setGwAlias(@NonNull String userName, @NonNull String token, @NonNull String sn,
                    @NonNull String alias, @NonNull CallBack<String> callBack);






}
